const { sqlPromise } = require("../db/sqlPromise");
// 获取文章分类列表
// 1. 初始化路由模块
// 2. 初始化路由处理函数模块
// 3. 获取文章分类列表数据
exports.getArticleCates = async (req, res) => {
  let sql = "select * from ev_article_cate where is_delete=0 order by id asc";
  let results = await sqlPromise(sql);
  res.send({ status: 0, message: "获取文章分类列表成功", data: results });
};
// 新增文章分类
// 1. 定义路由和处理函数
// 2. 验证表单数据
// 3. 查询 `分类名称` 与 `分类别名` 是否被占用
// 4. 实现新增文章分类的功能
exports.addArticleCates = async (req, res) => {
  // 查询分类别名和分类名是否被占用
  // 定义查重sql语句
  let querySql = "select * from ev_article_cate where name=? or alias=?";
  let queryRes = await sqlPromise(querySql, [req.body.name, req.body.alias]);
  if (queryRes.length === 2)
    return res.send({
      status: 1,
      message: "分类名称和分类别名已被占用 请更换后重试",
    });
  if (queryRes.length === 1 && queryRes[0].name === req.body.name)
    return res.send({
      status: 1,
      message: "分类名称已被占用 请更换后重试",
    });
  if (queryRes.length === 1 && queryRes[0].alias === req.body.alias)
    return res.send({
      status: 1,
      message: "分类别名已被占用 请更换后重试",
    });
  let addSql = "insert into ev_article_cate set ?";
  let addRes = await sqlPromise(addSql, req.body);
  if (addRes.affectedRows !== 1)
    return res.send({ status: 1, message: "新增文章分类失败" });
  res.send({ status: 0, message: "新增文章分类成功" });
};
// 根据ID删除文章分类
// 1.定义路由和处理函数
// 2.验证表单数据
// 3.实现删除文章分类的功能
exports.deleteCateById = async (req, res) => {
  let sql = "update ev_article_cate set is_delete=1 where id=?";
  let results = await sqlPromise(sql, req.params.id);
  if (results.affectedRows !== 1)
    return res.send({ status: 1, message: "删除文章分类失败" });
  res.send({ status: 0, message: "删除文章分类成功" });
};
// 根据 Id 获取文章分类数据
// 1. 定义路由和处理函数
// 2. 验证表单数据
// 3. 实现获取文章分类的功能
exports.getArticleById = async (req, res) => {
  const sql = "select * from ev_article_cate where id=?";
  let results = await sqlPromise(sql, req.params.id);
  if (results.length != 1)
    return res.send({ status: 1, message: "获取文章分类数据失败" });
  res.send({
    status: 0,
    message: "获取文章分类数据成功",
    data: results[0],
  });
};
// 更新文章分类数据
// 1. 定义路由和处理函数
// 2. 验证表单数据
// 3. 查询 `分类名称` 与 `分类别名` 是否被占用
// 4. 实现更新文章分类的功能
exports.updateCateById = async (req, res) => {
  // 查询不是这个id的其他数据分类名与分类别名
  const querySql =
    "select * from ev_article_cate where id<>? and (name=? or alias=?)";
  let queryRes = await sqlPromise(querySql, [
    req.body.id,
    req.body.name,
    req.body.alias,
  ]);
  if (queryRes.length === 2)
    return res.send({
      status: 1,
      message: "分类名称和分类别名被占用,请更换后重试",
    });
  if (queryRes.length === 1 && queryRes[0].name === req.body.name)
    return res.send({ status: 1, message: "分类名称被占用,请更换后重试" });
  if (queryRes.length === 1 && queryRes[0].alias === req.body.alias)
    return res.send({ status: 1, message: "分类别名被占用,请更换后重试" });
  const updateSql = "update ev_article_cate set ? where id=?";
  let updateRes = await sqlPromise(updateSql, [req.body, req.body.id]);
  if (updateRes.affectedRows != 1)
    return res.send({ status: 1, message: "更新文章分类失败" });
  res.send({ status: 0, message: "更新文章分类成功" });
};
